package ar.com.ctrln.persistence.dao.evento;

import java.util.List;

import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import ar.com.ctrln.persistence.dao.AbstractHibernateDao;
import ar.com.ctrln.persistence.model.evento.EventoCalendario;
import ar.com.ctrln.persistence.model.sistema.cuentas.Autorizacion;

@Repository("eventoCalendarioDao")
public class HibernateEventoCalendarioDao extends
		AbstractHibernateDao<EventoCalendario> implements EventoCalendarioDao {

	@Transactional(readOnly = true)
	public List<EventoCalendario> getEventosAutorizados(long idAutorizacion) {
		Query q = getSession()
				.createQuery("from Autorizacion a where a.id = ?");
		q.setParameter(0, idAutorizacion);

		Autorizacion autorizacion = (Autorizacion) q.uniqueResult();
		Hibernate.initialize(autorizacion.getEventos());

		return (List<EventoCalendario>) autorizacion.getEventos();
	}

}
